iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0

筆者在這一章節,進行sign及取得iv的實作

首先由Sign開始,在[Day4] API開發規格書中有提到Sign的產生方式。

def get_message_hash(data):
    sorted_key_list = sorted(data.keys())
    first = True
    result = ""
    for key in sorted_key_list:
        if first:
            temp = key + "=" + data[key]
            first = False
        else:
            temp = "&" + key + "=" + data[key]
        result += temp
    return result

def get_sign(data, nonce, hash_id):
    hash_value = data + nonce + hash_id
    return hashlib.sha256(hash_value.encode("utf-8")).hexdigest().upper()

get_message_hash首先先將dict的key值排序後,一個一個的放入result中,get_sign則是先將三個字串合在一起後,使用hashlib進行sha256完以Hex的形式作為output最後轉成大寫。

接下來則是取的iv的部分,取得iv值需要先將nonce值做sha256後取得右邊16碼流程如下圖

實作方式如下

def get_iv(nonce):
    sha_nonce_value = hashlib.sha256(nonce.encode("utf-8")).hexdigest().upper()
    return sha_nonce_value[-16:-1]

以上就是本節的內容


上一篇
[Day9] 建立訂單交易API_2
下一篇
[Day11] 建立訂單交易API_4
系列文
從永豐金融APIs進入Open API的30天挑戰18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言